<script>
/* 
基本类型 、引用类型（内存的地址）
    变量
        只有使用时才确定变量的类型  弱语言类型
    创建变量过程
        1、创建了一个名字
        2、一个作用范围
        3、提升到函数的最顶部
        4、赋值时看是什么类型，如果基础类型值保存到变量，对象保存引用地址

    变量的修改：
        基本数据类型：销毁、创建
        对象：可以修改

    变量的复制
        基本：进行复制，独立
        引用：两个内存地址相同，不独立
创建函数
    function   每个函数都有返回值   没有return 则是undefined
    函数的参数是按值进行传递
检测类型
    typeof
    instanceof  基础类型不能检测 始终返回false


*/
function add(a,b){
    console.log(arguments);
    console.log(this);
    return a+b;
}
add(1,2,3);
let a= 10;
let b= "";
let c=true;

console.log(Object.prototype.toString.call({}));
console.log(Object.prototype.toString.call(add));
console.log(Object.prototype.toString.call([]));
console.log(Object.prototype.toString.call(/^2/g));
console.log(Object.prototype.toString.call(a));
console.log(Object.prototype.toString.call(b));
console.log(Object.prototype.toString.call(c));
</script>